int*p; int num[5]={10,20,21,40,50}; p=&num[1];p++;

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:57:29
下面代码的输出结果是什么?
void main()
{
int*p;

int num[5]={10,20,21,40,50};
p=&num[1];
p++;

*p=30;
printf("%d",num[2]+*p);

}

答案给出的是输出 60,为什么?请指点一下!谢谢!

p一开始指向num数组的第二个元素,也就是num[1],值是20
而后,p++,p指向num数组的第三个元素,也就是num[2],值是21
接着,把30赋值给p指向的值,也就是num[2],此时,num[2]变成30
最后的输出,相当于把num[2]乘了一个2,也就是60 了